package de.hatraco.funderberg.blackjack.views;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

import de.hatraco.funderberg.blackjack.data.DataMISC;
import de.hatraco.funderberg.blackjack.data.GraphicsBlackJack;

public class StartstackDialog extends JDialog {
	
	//Singleton Pattern: Stellt sicher, dass nur eine Instanz von BetDialog existiert
	private static StartstackDialog instance = new StartstackDialog();

	public static StartstackDialog getInstance() {
		if(instance == null) {
			instance = new StartstackDialog();
		}
		return instance;
	}
	
	private JLabel bg_startstack;
	private JLabel startstack_text1;
	private JLabel startstack_text2;
	private JLabel startstack_text3;
	private JLabel startstack_text4;
	private JLabel startstack_text5;
	private JLabel startstack_text6;
	private JLabel startstack_text7;
	private JLabel startstack_text8;
	private JLabel thestartstack;
	
	private JButton startstack_ok;
	private JButton startstack_start;
	
	//Definiert ein Array mit möglichen Startstack-Werten
	private int [] startstacks = {50, 100, 150, 200, 250, 300};
	
	//private String link = DataMISC.LINKIMG;
	
	private GraphicsBlackJack img;
	
	private StartstackDialog() {
		
		//Instanziert GraphicsBlackJack (für die Bilder)
		this.img = GraphicsBlackJack.getInstance();
		
		//Legt die Größe des Fensters fest
		this.setSize(400,300);
		//Legt fest, dass die Größe nicht verändert werden kann
		this.setResizable(false);
		//Legt fest, dass das Fenster nicht über das "X" rechts oben geschlossen werden kann
		this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		//Gibt dem Fenster ein BorderLayout
		this.setLayout(new BorderLayout());
		//Legt den Hintergrund fest
		bg_startstack = new JLabel(img.getBgstartstack());
		//Fügt den Hintergrund hinzu
		this.add(bg_startstack);
		//Gibt dem Hintergrund ein "leeres" Layout
        bg_startstack.setLayout(null);
        
        //Instanziert, Modifiziert und Positioniert die Elemente
        //JLabels
        startstack_text1 = new JLabel("The charming");
        startstack_text1.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text1.setForeground(Color.WHITE);
        startstack_text1.setBounds(20, 20, 400, 25);
        
        startstack_text2 = new JLabel("GENDER BENDER");
        startstack_text2.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text2.setForeground(Color.WHITE);
        startstack_text2.setBounds(20, 55, 400, 25);
		
        startstack_text3 = new JLabel("will now ascertain");
        startstack_text3.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text3.setForeground(Color.WHITE);
        startstack_text3.setBounds(20, 90, 400, 25);
		
		startstack_text4 = new JLabel("the startstack");
		startstack_text4.setFont(DataMISC.ARIAL_BOLD20);
		startstack_text4.setForeground(Color.WHITE);
		startstack_text4.setBounds(20, 125, 400, 25);
		
		startstack_text5 = new JLabel("for all players.");
		startstack_text5.setFont(DataMISC.ARIAL_BOLD20);
		startstack_text5.setForeground(Color.WHITE);
		startstack_text5.setBounds(20, 160, 400, 25);
		
		startstack_text6 = new JLabel("Thank you darling!");
        startstack_text6.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text6.setForeground(Color.WHITE);
        startstack_text6.setBounds(20, 30, 400, 25);
        startstack_text6.setVisible(false);
        
        startstack_text7 = new JLabel("Each player receives");
        startstack_text7.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text7.setForeground(Color.WHITE);
        startstack_text7.setBounds(20, 65, 400, 25);
        startstack_text7.setVisible(false);
        
        startstack_text8 = new JLabel("chips as startstack.");
        startstack_text8.setFont(DataMISC.ARIAL_BOLD20);
        startstack_text8.setForeground(Color.WHITE);
        startstack_text8.setBounds(20, 170, 400, 25);
        startstack_text8.setVisible(false);
		
		thestartstack = new JLabel("");
		thestartstack.setFont(DataMISC.ARIAL_BOLD40);
		thestartstack.setForeground(Color.WHITE);
		thestartstack.setBounds(80, 105, 100, 50);
		thestartstack.setHorizontalAlignment(SwingConstants.CENTER);
		thestartstack.setVisible(false);
		
		//Buttons
		startstack_ok = new JButton(img.getBtok());
		startstack_start = new JButton(img.getBtstartgame());
		
		startstack_ok.setBounds(70, 210, 60, 40);
		startstack_start.setBounds(40, 210, 120, 40);
		
		startstack_start.setVisible(false);
		
		//Fügt die Elemente dem Hintergrund hinzu
		bg_startstack.add(startstack_text1);
		bg_startstack.add(startstack_text2);
		bg_startstack.add(startstack_text3);
		bg_startstack.add(startstack_text4);
		bg_startstack.add(startstack_text5);
		bg_startstack.add(startstack_text6);
		bg_startstack.add(startstack_text7);
		bg_startstack.add(startstack_text8);
		bg_startstack.add(startstack_ok);
		bg_startstack.add(startstack_start);
		bg_startstack.add(thestartstack);		
	}
	
	//Definiert Listener für die Buttons
	public void setStartstackListener(ActionListener ae) {
		this.startstack_ok.addActionListener(ae);
		this.startstack_start.addActionListener(ae);
	}

	public JLabel getStartstack_text1() {
		return startstack_text1;
	}

	public void setStartstack_text1(JLabel startstack_text1) {
		this.startstack_text1 = startstack_text1;
	}

	public JLabel getStartstack_text2() {
		return startstack_text2;
	}

	public void setStartstack_text2(JLabel startstack_text2) {
		this.startstack_text2 = startstack_text2;
	}

	public JLabel getStartstack_text3() {
		return startstack_text3;
	}

	public void setStartstack_text3(JLabel startstack_text3) {
		this.startstack_text3 = startstack_text3;
	}

	public JLabel getStartstack_text4() {
		return startstack_text4;
	}

	public void setStartstack_text4(JLabel startstack_text4) {
		this.startstack_text4 = startstack_text4;
	}

	public JLabel getStartstack_text5() {
		return startstack_text5;
	}

	public void setStartstack_text5(JLabel startstack_text5) {
		this.startstack_text5 = startstack_text5;
	}

	public JLabel getStartstack_text6() {
		return startstack_text6;
	}

	public void setStartstack_text6(JLabel startstack_text6) {
		this.startstack_text6 = startstack_text6;
	}

	public JLabel getStartstack_text7() {
		return startstack_text7;
	}

	public void setStartstack_text7(JLabel startstack_text7) {
		this.startstack_text7 = startstack_text7;
	}

	public JLabel getStartstack_text8() {
		return startstack_text8;
	}

	public void setStartstack_text8(JLabel startstack_text8) {
		this.startstack_text8 = startstack_text8;
	}

	public JLabel getThestartstack() {
		return thestartstack;
	}

	public void setThestartstack(JLabel thestartstack) {
		this.thestartstack = thestartstack;
	}

	public int[] getStartstacks() {
		return startstacks;
	}

	public void setStartstacks(int[] startstacks) {
		this.startstacks = startstacks;
	}

	public JLabel getBg_startstack() {
		return bg_startstack;
	}

	public void setBg_startstack(JLabel bg_startstack) {
		this.bg_startstack = bg_startstack;
	}

	public JButton getStartstack_ok() {
		return startstack_ok;
	}

	public void setStartstack_ok(JButton startstack_ok) {
		this.startstack_ok = startstack_ok;
	}

	public JButton getStartstack_start() {
		return startstack_start;
	}

	public void setStartstack_start(JButton startstack_start) {
		this.startstack_start = startstack_start;
	}
}
